package com.stm.bi.dto.query;

import com.stm.bi.enums.DateType;
import com.stm.bi.enums.ProductStructIndex;
import com.stm.framework.annotation.ReqParam;
import com.stm.framework.dto.PageQuery;
import com.stm.saas.enums.ProductStructType;

import java.util.ArrayList;
import java.util.List;

/**
 * @Description:
 * @Author: bo
 * @Date: 2023/10/17 9:20
 */
public class ProductStructQry extends PageQuery {

    @ReqParam(label = "商品结构指标", required = true)
    private ProductStructIndex productStructIndex;

    @ReqParam(label = "商品结构类型", required = true, enumClass = ProductStructType.class)
    private String productStructType;

    @ReqParam(label = "时间维度类型", required = true)
    private DateType dateType;

    @ReqParam(label = "部门ID", required = true)
    private Long deptId;

    @ReqParam(label = "开始时间", required = true)
    private String startDate;

    @ReqParam(label = "结束时间", required = true)
    private String endDate;

    @ReqParam(label = "商品类型")
    private List<ParamQry> params = new ArrayList<>();

    @ReqParam(label = "指标ID")
    private Long indexId;

    @ReqParam(label = "条数排序")
    private Integer limit;


    public ProductStructIndex getProductStructIndex() {
        return productStructIndex;
    }

    public ProductStructQry setProductStructIndex(ProductStructIndex productStructIndex) {
        this.productStructIndex = productStructIndex;
        return this;
    }

    public String getProductStructType() {
        return productStructType;
    }

    public ProductStructQry setProductStructType(String productStructType) {
        this.productStructType = productStructType;
        return this;
    }

    public Long getDeptId() {
        return deptId;
    }

    public ProductStructQry setDeptId(Long deptId) {
        this.deptId = deptId;
        return this;
    }

    public String getStartDate() {
        return startDate;
    }

    public ProductStructQry setStartDate(String startDate) {
        this.startDate = startDate;
        return this;
    }

    public String getEndDate() {
        return endDate;
    }

    public ProductStructQry setEndDate(String endDate) {
        this.endDate = endDate;
        return this;
    }

    public DateType getDateType() {
        return dateType;
    }

    public ProductStructQry setDateType(DateType dateType) {
        this.dateType = dateType;
        return this;
    }

    public List<ParamQry> getParams() {
        return params;
    }

    public ProductStructQry setParams(List<ParamQry> params) {
        this.params = params;
        return this;
    }

    public Long getIndexId() {
        return indexId;
    }

    public ProductStructQry setIndexId(Long indexId) {
        this.indexId = indexId;
        return this;
    }

    public Integer getLimit() {
        return limit;
    }

    public ProductStructQry setLimit(Integer limit) {
        this.limit = limit;
        return this;
    }
}
